﻿using System;
using System.Web.Security;
using Autofac;
using ComputerVision.BaseForm;
using ComputerVision.Common;
using ComputerVision.Data;
using ComputerVision.Services;

namespace ComputerVision.User
{
    public partial class frmUserDetail : frmDetail
    {
        //private IService<aspnet_Users> _userService;

        private MembershipUser mem;
        public frmUserDetail()
        {
            InitializeComponent();
            Text = @"Thêm người dùng mới";
            txtUsername.Focus();
        }

        public frmUserDetail(string userName)
        {
            InitializeComponent();
            Text = @"Sửa thông tin người dùng";
            txtUsername.Focus();

            _fromtype = Constants.TypeForm.Edit;
            idS = userName;

            mem = Membership.GetUser(idS);
            if (mem != null)
            {
                txtUsername.Text = mem.UserName;
                lbPass.Text = mem.GetPassword();
                //txtPassword.Text = mem.GetPassword();
            }
            txtUsername.ReadOnly = true;
        }

        protected override bool Validator()
        {
            var isValid = true;

            if (string.IsNullOrEmpty(txtUsername.Text.Trim()))
            {
                errorProvider.SetError(txtUsername, "Tên đăng nhập không được để trống.");
                isValid = false;
            }
            if (string.IsNullOrEmpty(txtPassword.Text.Trim()))
            {
                errorProvider.SetError(txtPassword, "Mật khẩu không được để trống.");
                isValid = false;
            }
            if (string.CompareOrdinal(txtPassword.Text.Trim(), txtRePassword.Text.Trim()) != 0)
            {
                errorProvider.SetError(txtRePassword, "Xác nhận mật khẩu sai.");
                isValid = false;
            }
            return isValid;
        }

        protected override void Insert()
        {
            if (Validator())
            {
                try
                {
                    Membership.CreateUser(txtUsername.Text.Trim(), txtPassword.Text.Trim());
                }
                catch (Exception ex)
                {
                    AlertList.Error("Tạo mới người dùng không thành công.");
                }
            }
        }

        protected override void Edit()
        {
            var mem = Membership.GetUser(idS);
            try
            {
                mem.ChangePassword(lbPass.Text, txtPassword.Text);

            }
            catch (Exception ex)
            {
                AlertList.Error("Cập nhật thông tin không thành công.");
            }

        }
    }
}
